package br.edu.faculdadeprojecao.DAO;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.edu.faculdadeprojecao.infra.JPAUtil;
import br.edu.faculdadeprojecao.modelo.Telefone;
import br.edu.faculdadeprojecao.modelo.Usuario;

public final class TelefoneDAO extends GenericDAO {

	public Telefone buscaPorID(Integer id) {
		Telefone telefone = null;

		try {
			EntityManager em = new JPAUtil().getEntityManager();
			em.getTransaction().begin();
			telefone = em.getReference(Telefone.class, id);

		} catch (Exception e) {
			e.printStackTrace();

		} finally {
			em.close();
		}

		return telefone;
	}

	public void excluir(Telefone telefone) {
		EntityManager em = new JPAUtil().getEntityManager();
		try {

			em.getTransaction().begin();
			em.remove(em.getReference(Telefone.class, telefone.getId()));
			em.getTransaction().commit();

		} catch (Exception e) {
			e.printStackTrace();

		} finally {
			em.close();
		}

	}

	@SuppressWarnings("unchecked")
	public List<Telefone> telefonePorUsuario(Usuario u) {

		EntityManager em = new JPAUtil().getEntityManager();
		List<Telefone> telefones;
		try {
			em.getTransaction().begin();

			Query query = em
					.createQuery("select a from Telefone a where a.usuario =:usuario");
			query.setParameter("usuario", u);
			telefones = query.getResultList();

		} catch (Exception e) {
			telefones = null;
			e.printStackTrace();
		} finally {
			em.close();
		}

		return telefones;
	}

}